package com.org.flow.system.service;

import com.org.flow.system.model.dos.log.BusinessExceptionLogDTO;
import com.yomahub.liteflow.core.NodeComponent;
import org.springframework.scheduling.annotation.Async;

/**
 * 类描述：日志服务
 *
 * @version 1.0.0
 * @since 1.0.0  2024-02-26 09:32:50
 */
public interface LogService {
    /**
     * 方法描述：基于流程基础组件进行错误业务日志入库
     * 因为【编排式的启动后所有操作】是一个事务，所以此处错误日志需要走自己的业务
     *
     * @param cmp 基础组件
     * @param e   错误
     * @since 1.0.0   2024-02-26 09:33:43
     */
    void insErrorLog(NodeComponent cmp, Exception e);

    /**
     * 方法描述：基于日志实体及异常进行错误业务日志入库
     * (*)这个 需要注意  在【编排式的启动后所有操作】中此异步方法是不生效的
     * @param dto 到
     * @param e   e
     * @author xú chūn chéng
     * @since 1.0.0   2024-02-26 09:35:29
     */
    @Async
    void insErrorLog(BusinessExceptionLogDTO dto, Exception e);
}
